<html>
<head><meta charset="utf-8"><title>cost of linking / dsymutil · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html">cost of linking / dsymutil</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="180271167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180271167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180271167">(Nov 08 2019 at 20:57)</a>:</h4>
<p>So I was visiting a company today (same place that <span class="user-mention" data-user-id="119031">@Esteban Küber</span> works, as it happens...) and they were showing me some of their woes with regard to incremental compilation costs. We whipped out self-profile (yay <span class="user-group-mention" data-user-group-id="1123">@WG-self-profile</span>, this worked great) and we found that <strong>97%</strong> of the time was in <code>link_crate</code> -- and it looks like that might have been excluding <code>dsymutil</code> costs, which were large (like, we had top running and dsymutil was sitting there for a while). Or at least cargo said 1min of time and the self-profile included only ~35s.</p>
<p>Which brings me to my question. How much have we thought about ways to avoid running the linker <em>at all</em> in incremental scenarios? I feel like I've heard some ideas for epic hacks (maybe from <span class="user-mention" data-user-id="119009">@eddyb</span>? at least that's where my mind turns when I think of epic hacks...). Maybe from <span class="user-mention" data-user-id="116015">@Alex Crichton</span>?</p>
<p>Also dear god what can we do about dsymutil!!</p>



<a name="180271318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180271318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180271318">(Nov 08 2019 at 20:59)</a>:</h4>
<p>there are certainly hacks we can do, but what exactly is being linked?</p>



<a name="180271501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180271501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180271501">(Nov 08 2019 at 21:00)</a>:</h4>
<p>if it's dsymutil, I feel like that's debuginfo? in which case the problem might be that we generate a <em>ton</em> of data -- e.g., multiple gigabytes of debuginfo if set to "full" vs. just line numbers</p>



<a name="180271538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180271538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180271538">(Nov 08 2019 at 21:01)</a>:</h4>
<p>oh yeah unless you're using a debugger, don't set it to full</p>



<a name="180271560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180271560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180271560">(Nov 08 2019 at 21:01)</a>:</h4>
<p>maybe we're relying on a bad default for debug mode</p>



<a name="180273654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180273654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180273654">(Nov 08 2019 at 21:24)</a>:</h4>
<p>I'm not sure if we set it to full, <em>but</em> I think they are trying to use debuggers</p>



<a name="180273666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180273666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180273666">(Nov 08 2019 at 21:24)</a>:</h4>
<p>That doesn't seem like such an unreasonable thing to want to do :)</p>



<a name="180273679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180273679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180273679">(Nov 08 2019 at 21:24)</a>:</h4>
<p>dsymutil was I think like 50% of the linking cost</p>



<a name="180273687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180273687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180273687">(Nov 08 2019 at 21:24)</a>:</h4>
<blockquote>
<p>there are certainly hacks we can do, but what exactly is being linked?</p>
</blockquote>
<p>I'm not sure how to answer this -- rust code? :P</p>



<a name="180274781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180274781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180274781">(Nov 08 2019 at 21:36)</a>:</h4>
<p>There's some background for dsymutil at <a href="https://github.com/rust-lang/rust/issues/47240" target="_blank" title="https://github.com/rust-lang/rust/issues/47240">https://github.com/rust-lang/rust/issues/47240</a></p>



<a name="180274803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180274803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180274803">(Nov 08 2019 at 21:36)</a>:</h4>
<p>and <a href="https://github.com/rust-lang/rust/pull/47784" target="_blank" title="https://github.com/rust-lang/rust/pull/47784">https://github.com/rust-lang/rust/pull/47784</a> initially started by trying to remove it altogether but we weren't able to do that</p>



<a name="180274810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180274810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180274810">(Nov 08 2019 at 21:37)</a>:</h4>
<p>(but it ended up in a <code>-Z</code> flag to avoid it)</p>



<a name="180274859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180274859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180274859">(Nov 08 2019 at 21:37)</a>:</h4>
<p>avoiding the linker will likely be pretty hard, and maybe not that useful? That's only really possible if zero object files changed, but it seems like at least one object file is likely to always change</p>



<a name="180275040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275040">(Nov 08 2019 at 21:39)</a>:</h4>
<p>we also have a very old issue - <a href="https://github.com/rust-lang/rust/issues/34651" target="_blank" title="https://github.com/rust-lang/rust/issues/34651">https://github.com/rust-lang/rust/issues/34651</a> - to use split-dwarf on all platforms to reduce the cost of linking with debuginfo</p>



<a name="180275296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275296">(Nov 08 2019 at 21:42)</a>:</h4>
<p>Another theory is that LLD may be faster than the system linker on OSX</p>



<a name="180275303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275303">(Nov 08 2019 at 21:42)</a>:</h4>
<p>you should be able to switch with <code>rustc foo.rs -C linker-flavor=ld64.lld -Clinker=rust-lld</code></p>



<a name="180275314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275314">(Nov 08 2019 at 21:42)</a>:</h4>
<p>although I just did that and it produced a segfaulting binary</p>



<a name="180275324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275324">(Nov 08 2019 at 21:42)</a>:</h4>
<p>so it is likely not production quality yet</p>



<a name="180275357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275357">(Nov 08 2019 at 21:43)</a>:</h4>
<p>the tl;dr; of <code>dsymutil</code> is that if we don't run it <code>RUST_BACKTRACE</code> doesn't work</p>



<a name="180275369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275369">(Nov 08 2019 at 21:43)</a>:</h4>
<p>and historically that's been more important than saving compile time</p>



<a name="180275394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275394">(Nov 08 2019 at 21:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> is this project available though to poke around in?</p>



<a name="180275450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275450">(Nov 08 2019 at 21:44)</a>:</h4>
<p>It's closed source</p>



<a name="180275459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275459">(Nov 08 2019 at 21:44)</a>:</h4>
<p>I was thinking about looking at some other repos that may have similar problems</p>



<a name="180275472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275472">(Nov 08 2019 at 21:44)</a>:</h4>
<p>it was 'plain old cargo' though</p>



<a name="180275473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275473">(Nov 08 2019 at 21:44)</a>:</h4>
<p>linking debug info will take a fair share of time on all platforms.</p>



<a name="180275478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275478">(Nov 08 2019 at 21:44)</a>:</h4>
<p>the pattern was a lot of crates, and then a very shallow "tip" crate</p>



<a name="180275507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275507">(Nov 08 2019 at 21:45)</a>:</h4>
<p>(much like rustc_driver etc)</p>



<a name="180275521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275521">(Nov 08 2019 at 21:45)</a>:</h4>
<p>At work we have a semi-trivial 500-crate graph that takes 100% longer to link with debug info than when building with --release.</p>



<a name="180275560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275560">(Nov 08 2019 at 21:45)</a>:</h4>
<blockquote>
<p>avoiding the linker will likely be pretty hard, and maybe not that useful? That's only really possible if zero object files changed, but it seems like at least one object file is likely to always change</p>
</blockquote>
<p>yeah I mean the goal would be to somehow do some surgery such that we can run the code without actually linking or something. I have no idea how to achieve this. =)</p>



<a name="180275601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275601">(Nov 08 2019 at 21:46)</a>:</h4>
<p>lld has incremental linking support</p>



<a name="180275620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275620">(Nov 08 2019 at 21:46)</a>:</h4>
<p>This is why I mentioned epic hacks ;)</p>



<a name="180275631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275631">(Nov 08 2019 at 21:46)</a>:</h4>
<p>Yes, that's another possibility</p>



<a name="180275634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275634">(Nov 08 2019 at 21:46)</a>:</h4>
<p>and Microsoft’s linker does too AFAIK</p>



<a name="180275670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275670">(Nov 08 2019 at 21:46)</a>:</h4>
<p>Sounds promising</p>



<a name="180275680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275680">(Nov 08 2019 at 21:46)</a>:</h4>
<p>some recommendations we can make for now possibly are:</p>
<ul>
<li>Recommend turning debuginfo off, or evaluating <code>debug = 1</code> in <code>Cargo.toml</code></li>
<li>Recommend <code>-Z run-dsymutil=no</code> in RUSTFLAGS</li>
<li>See if <code>rust-lld</code> works for them</li>
<li>maybe see if a recent <code>llvm-dsymutil</code> is faster and switch to using that instead of the system one</li>
</ul>



<a name="180275742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275742">(Nov 08 2019 at 21:47)</a>:</h4>
<p>I've never tested out incremental linker support myself, but we probably want a working LLD linker before we switch to an incremental version</p>



<a name="180275813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275813">(Nov 08 2019 at 21:48)</a>:</h4>
<p>IIRC we don't activate MSVC's incremental linker support</p>



<a name="180275887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275887">(Nov 08 2019 at 21:49)</a>:</h4>
<p>OK. Definitely exploring incremental linking is the obvious route.</p>



<a name="180275935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275935">(Nov 08 2019 at 21:49)</a>:</h4>
<p>I said lld has incremental linking support, but now that I spent 5 minutes not finding anything on ddg, I’m not so sure anymore</p>



<a name="180275947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275947">(Nov 08 2019 at 21:50)</a>:</h4>
<p>I too have heard this before</p>



<a name="180275998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180275998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180275998">(Nov 08 2019 at 21:50)</a>:</h4>
<blockquote>
<p>I've never tested out incremental linker support myself, but we probably want a working LLD linker before we switch to an incremental version</p>
</blockquote>
<p>But I mean this is also true :)</p>



<a name="180276066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276066">(Nov 08 2019 at 21:51)</a>:</h4>
<p>at least the <code>-h</code> page for <code>rust-lld</code> doesn't show anything about incremental</p>



<a name="180276086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276086">(Nov 08 2019 at 21:51)</a>:</h4>
<p>that being said when it works LLD is typically much faster than the system linker</p>



<a name="180276097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276097">(Nov 08 2019 at 21:51)</a>:</h4>
<p>I don't think the macos linker is winning any awards for its speed</p>



<a name="180276105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276105">(Nov 08 2019 at 21:51)</a>:</h4>
<p>The references I can find are all about thinlto incremental stuff (<a href="https://clang.llvm.org/docs/ThinLTO.html#incremental" target="_blank" title="https://clang.llvm.org/docs/ThinLTO.html#incremental">https://clang.llvm.org/docs/ThinLTO.html#incremental</a>)</p>



<a name="180276220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276220">(Nov 08 2019 at 21:52)</a>:</h4>
<p>but yeah, if linking time is a problem, the only thing I know of to resolve it right now is to reduce the amount of work for linker to do</p>



<a name="180276243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276243">(Nov 08 2019 at 21:53)</a>:</h4>
<p>which means not giving it gigabytes of debuginfo to link for the first obvious step.</p>



<a name="180276294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276294">(Nov 08 2019 at 21:53)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> in general our performance monitoring is pretty bad for non-x86_64-unknown-linux-gnu platforms</p>



<a name="180276358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276358">(Nov 08 2019 at 21:54)</a>:</h4>
<p>it's largely a technical problem where we just can't profile everything everywhere all the time</p>



<a name="180276364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276364">(Nov 08 2019 at 21:54)</a>:</h4>
<p>This problem is as relevant on x86_64 linux gnu tho</p>



<a name="180276380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276380">(Nov 08 2019 at 21:54)</a>:</h4>
<p>but I ran across <a href="https://github.com/rust-lang/rust/issues/66192" target="_blank" title="https://github.com/rust-lang/rust/issues/66192">https://github.com/rust-lang/rust/issues/66192</a> yesterday which was very surprising</p>



<a name="180276400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276400">(Nov 08 2019 at 21:54)</a>:</h4>
<p>and yes this is a problem without split dwarf on linux but ld + dsymutil is for me I feel so much slower than just ld on linux</p>



<a name="180276406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276406">(Nov 08 2019 at 21:54)</a>:</h4>
<p>like the linux linkers are generally pretty fast</p>



<a name="180276423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276423">(Nov 08 2019 at 21:55)</a>:</h4>
<p>but not profiling these sorts of things on OSX means that this just comes up less often</p>



<a name="180276438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276438">(Nov 08 2019 at 21:55)</a>:</h4>
<p>it's all stuff we should fix but it's not something we're prioritizing</p>



<a name="180276547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276547">(Nov 08 2019 at 21:56)</a>:</h4>
<p>yeah, sounds correct</p>



<a name="180276554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276554">(Nov 08 2019 at 21:56)</a>:</h4>
<p>I know that basically every time I talked to Anthony Jones at Mozilla he brings up dsymutil :)</p>



<a name="180276573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180276573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180276573">(Nov 08 2019 at 21:56)</a>:</h4>
<p>He is...probably not wrong to do so</p>



<a name="180280100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180280100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180280100">(Nov 08 2019 at 22:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> when I said "what is being linked" I meant what kind of artifact</p>



<a name="180280105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180280105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180280105">(Nov 08 2019 at 22:44)</a>:</h4>
<p>is all that time spent linking an executable?</p>



<a name="180286386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180286386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ivan Dubrov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180286386">(Nov 09 2019 at 00:25)</a>:</h4>
<p>Yes, one huge executable.</p>



<a name="180287397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180287397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180287397">(Nov 09 2019 at 00:42)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> if you want I can concoct an example</p>



<a name="180287444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180287444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180287444">(Nov 09 2019 at 00:43)</a>:</h4>
<p>okay an executable makes sense</p>



<a name="180287451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180287451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180287451">(Nov 09 2019 at 00:43)</a>:</h4>
<p>but I think you can easily do that yourself by just adding deps on a couple of crates that have large dep trees.</p>



<a name="180287455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180287455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180287455">(Nov 09 2019 at 00:43)</a>:</h4>
<p>that's trickier to deal with than "we're wasting time making pointless rlib's"</p>



<a name="180303747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180303747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David G. Horsman <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180303747">(Nov 09 2019 at 08:55)</a>:</h4>
<p>Hello excuse the interruption. I will be monitoring (lurking).  My goal is audited source to executable dumps at each step which is very compatible with Rust. As you all know optimization makes this less deterministic but that will not be a problem for audit. </p>
<p>This is for open source software and hardware. Thanks so very much for all your hard work. When the word "awesome" really says something. Go Rust.</p>



<a name="180303869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180303869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David G. Horsman <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180303869">(Nov 09 2019 at 08:58)</a>:</h4>
<p>Additionally I will looking at where NN will benefit Rust within Build, dependencies and deployment.</p>



<a name="180303941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180303941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David G. Horsman <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180303941">(Nov 09 2019 at 09:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I am unfamiliar with your work culture here. Delete anything off topic please.</p>



<a name="180408251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180408251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180408251">(Nov 11 2019 at 09:20)</a>:</h4>
<p>Here is an old issue about incremental linking: <a href="https://github.com/rust-lang/rust/issues/37543" target="_blank" title="https://github.com/rust-lang/rust/issues/37543">https://github.com/rust-lang/rust/issues/37543</a></p>



<a name="180408276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180408276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180408276">(Nov 11 2019 at 09:21)</a>:</h4>
<p>Note that incremental ThinLTO and incremental linking are two different things.</p>



<a name="180408352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/cost%20of%20linking%20/%20dsymutil/near/180408352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/cost.20of.20linking.20.2F.20dsymutil.html#180408352">(Nov 11 2019 at 09:22)</a>:</h4>
<p>the former will only avoid redoing the ThinLTO optimization passes. We already support that but it won't change the time spent in the actual linking step.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>